package com.cxso.example.domain.etc;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

@Getter
@Setter
public class EtcInvoiceDomain implements Serializable {

    @Schema(description = "发票号码，最大50个字符")
    private String invoiceNum;

    @Schema(description = "发票代码，最大50个字符")
    private String invoiceCode;

    @Schema(description = "开票时间，格式：yyyy-MM-DDTHH:mm:ss")
    private String invoiceMakeTime;

    @Schema(description = "入口收费站，最大150个字符", example = "上海收费站")
    private String enStation;

    @Schema(description = "出口收费站，最大150个字符", example = "北京收费站")
    private String exStation;

    @Schema(description = "入站日期，格式：yyyy-MM-DD", example = "2023-09-01")
    private String enDate;

    @Schema(description = "出站日期，格式：yyyy-MM-DD", example = "2023-09-02")
    private String exDate;

    @Schema(description = "出站时间，格式：yyyy-MM-DDTHH:mm:ss", example = "2023-09-02 10:30:00")
    private Date exTime;

    @Schema(description = "交易金额（单位：分）", example = "1000")
    private long fee;

    @Schema(description = "税额（可抵扣金额）（单位：分）", example = "150")
    private long totalTaxAmount;

    @Schema(description = "车牌号码", example = "沪A12345")
    private String plateNum;

    @Schema(description = "车辆类型 11:一型货车 12:二型货车 13:三型货车 14:四型货车 15:五型货车 0:未确定", example = "1")
    private int vehicleType;

    @Schema(description = "销方名称", example = "上海公司")
    private String sellerName;

    @Schema(description = "销方税号", example = "123456789012345678")
    private String sellerTaxpayerCode;

    @Schema(description = "购方名称", example = "北京公司")
    private String buyerName;

    @Schema(description = "购方税号", example = "098765432109876543")
    private String buyerTaxpayerCode;

    @Schema(description = "运单编号，最大32个字符", example = "WAYBILL123456")
    private String waybillNum;

    @Schema(description = "运单开始时间，格式：yyyy-MM-DDTHH:mm:ss", example = "2023-09-01T10:30:00")
    private Date waybillStartTime;

    @Schema(description = "运单结束时间，格式：yyyy-MM-DDTHH:mm:ss", example = "2023-09-02T10:30:00")
    private Date waybillEndTime;

    @Schema(description = "价税合计（单位：分）", example = "1150")
    private long totalAmount;

    @Schema(description = "税率，0到1的一位或两位小数，范围：[0,1)", example = "0.13")
    private double taxRate;

    @Schema(description = "发票种类（可抵扣发票 - 不可抵扣发票）", example = "可抵扣发票")
    private String invoiceType;

    @Schema(description = "发票下载链接", example = "https://example.com/invoice.pdf")
    private String invoiceUrl;

    @Schema(description = "发票在线预览链接", example = "https://example.com/invoice.html")
    private String invoiceHtmlUrl;
}
